//package com.ruoyi.door.controller.admin.landlord;
//
//import java.util.List;
//import javax.servlet.http.HttpServletResponse;
//import org.springframework.security.access.prepost.PreAuthorize;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.PutMapping;
//import org.springframework.web.bind.annotation.DeleteMapping;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//import com.ruoyi.common.annotation.Log;
//import com.ruoyi.common.core.controller.BaseController;
//import com.ruoyi.common.core.domain.AjaxResult;
//import com.ruoyi.common.utils.StringUtils;
//import com.ruoyi.common.enums.BusinessType;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import com.ruoyi.common.core.page.TableSupport;
//import com.ruoyi.common.core.page.TableDataInfo;
//import com.ruoyi.common.constant.HttpStatus;
//import com.easy.query.core.api.pagination.EasyPageResult;
//import com.easy.query.api.proxy.client.EasyEntityQuery;
//import com.easy.query.api.proxy.entity.select.EntityQueryable;
//import com.ruoyi.door.domain.proxy.DoorLandlordProxy;
//import com.ruoyi.door.domain.DoorLandlord;
//import com.ruoyi.common.utils.poi.ExcelUtil;
//import com.ruoyi.common.core.page.TableDataInfo;
//
///**
// * 房东Controller
// *
// * @author ruoyi
// * @date 2025-06-20
// */
//@Api(value ="房东管理",tags = "房东管理")
//@RestController
//@RequestMapping("/door/landlord")
//public class DoorLandlordController extends BaseController
//{
//    @Autowired
//    private EasyEntityQuery easyEntityQuery;
//
//    private  EntityQueryable<DoorLandlordProxy, DoorLandlord> buildQuery(DoorLandlord doorLandlord){
//        EntityQueryable<DoorLandlordProxy, DoorLandlord> queryable = easyEntityQuery.queryable(DoorLandlord.class)
//        .where(x -> {
//                    if(doorLandlord.getId() != null){
//                        x.id().eq(doorLandlord.getId());
//                    }
//                    if(StringUtils.isNotBlank(doorLandlord.getCreateBy())){
//                        x.createBy().eq(doorLandlord.getCreateBy());
//                    }
//                    if(doorLandlord.getCreateTime() != null){
//                        x.createTime().eq(doorLandlord.getCreateTime());
//                    }
//                    if(StringUtils.isNotBlank(doorLandlord.getUpdateBy())){
//                        x.updateBy().eq(doorLandlord.getUpdateBy());
//                    }
//                    if(doorLandlord.getUpdateTime() != null){
//                        x.updateTime().eq(doorLandlord.getUpdateTime());
//                    }
//                    if(StringUtils.isNotBlank(doorLandlord.getRemark())){
//                        x.remark().eq(doorLandlord.getRemark());
//                    }
//                    if(StringUtils.isNotBlank(doorLandlord.getName())){
//                        x.name().like(doorLandlord.getName());
//                    }
//                    if(StringUtils.isNotBlank(doorLandlord.getPhone())){
//                        x.phone().eq(doorLandlord.getPhone());
//                    }
//        })
//                .orderBy(x -> x.createTime().desc());
//        return queryable;
//    }
//    /**
//     * 查询房东列表
//     */
//    @ApiOperation("查询房东列表")
//    @GetMapping("/list")
//    public TableDataInfo list(DoorLandlord doorLandlord)
//    {
//        startPage();
//        EasyPageResult<DoorLandlord> pageResult = buildQuery(doorLandlord)
//                .toPageResult(TableSupport.buildPageRequest().getPageNum(),
//                        TableSupport.buildPageRequest().getPageSize());
//        TableDataInfo rspData = new TableDataInfo();
//        rspData.setCode(HttpStatus.SUCCESS);
//        rspData.setMsg("查询成功");
//        rspData.setRows(pageResult.getData());
//        rspData.setTotal(pageResult.getTotal());
//        return rspData;
//    }
//
//    /**
//     * 导出房东列表
//     */
//    @ApiOperation("导出房东列表")
//    @Log(title = "房东", businessType = BusinessType.EXPORT)
//    @PostMapping("/export")
//    public void export(HttpServletResponse response, DoorLandlord doorLandlord)
//    {
//        List<DoorLandlord> list = buildQuery(doorLandlord).toList();
//        ExcelUtil<DoorLandlord> util = new ExcelUtil<DoorLandlord>(DoorLandlord.class);
//        util.exportExcel(response, list, "房东数据");
//    }
//
//    /**
//     * 获取房东详细信息
//     */
//    @ApiOperation("获取房东详细信息")
//    @GetMapping(value = "/{id}")
//    public AjaxResult getInfo(@PathVariable("id") Long id)
//    {
//        return success (easyEntityQuery.queryable(DoorLandlord.class).where(x -> x.id().eq(id))
//            .firstOrNull());
//    }
//
//    /**
//     * 新增房东
//     */
//    @ApiOperation("新增房东")
//    @Log(title = "房东", businessType = BusinessType.INSERT)
//    @PostMapping
//    public AjaxResult add(@RequestBody DoorLandlord doorLandlord)
//    {
//        long rows = easyEntityQuery.insertable(doorLandlord).executeRows();
//        return toAjax(rows>0);
//    }
//
//    /**
//     * 修改房东
//     */
//    @ApiOperation("修改房东")
//    @Log(title = "房东", businessType = BusinessType.UPDATE)
//    @PutMapping
//    public AjaxResult edit(@RequestBody DoorLandlord doorLandlord)
//    {
//        return toAjax(easyEntityQuery.updatable(doorLandlord).executeRows()>0);
//    }
//
//    /**
//     * 删除房东
//     */
//    @ApiOperation("删除房东")
//    @Log(title = "房东", businessType = BusinessType.DELETE)
//    @DeleteMapping("/{ids}")
//    public AjaxResult remove(@PathVariable Long[] ids)
//    {
//        long rows = easyEntityQuery.deletable(DoorLandlord.class)
//                .disableLogicDelete()//禁用逻辑删除,使用物理删除
//            .allowDeleteStatement(true)//如果不允
//            .where(x -> x.id().in(ids))
//                .executeRows();
//        return toAjax(rows>0);
//    }
//}
